# 作者：SP
# 开发时间：2024/7/31 21:23
'''
reduce() 函数不是内置函数，而是包含在 functools 模块中的一个函数。reduce() 用来对序列中的元素进行累积操作，
将一个二元函数应用于序列中的元素，从而将整个序列缩减为一个单一的输出值
from functools import reduce
reduce(function, iterable[, initializer])
function: 一个二元函数，即接受两个参数的函数。
iterable: 一个可迭代的对象，例如列表、元组等。
initializer: 可选参数，用于初始化累加器的初始值
返回值
reduce() 返回一个单一的值，这个值是通过对 iterable 中的元素依次应用 function 得到的结果
'''
from functools import reduce
numbers = [1, 2, 3, 4, 5]
# 使用 lambda 表达式
product = reduce(lambda x, y: x * y, numbers)

print(product)  # 输出: 120
'''注意事项
reduce() 不是Python的内置函数，需要从 functools 模块导入。
如果 iterable 是空的并且没有提供 initializer 参数，则会引发 TypeError。
reduce() 是一个累积操作，因此它的效率和顺序取决于提供的 function'''